package ufc.si.pet.beans;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import ufc.si.pet.dao.implementacoes.AdministradorAtividadeJpaDAO;
import ufc.si.pet.dao.implementacoes.AtividadeJpaDAO;
import ufc.si.pet.dao.interfaces.AdministradorAtividadeDAO;
import ufc.si.pet.dao.interfaces.AtividadeDAO;
import ufc.si.pet.entidades.AdministradorAtividade;
import ufc.si.pet.entidades.Atividade;

@ViewScoped
@ManagedBean(name="atividadeBean")
public class AtividadeBean implements Serializable {

	private Atividade atividade;
	private AdministradorAtividade admin;

	public AtividadeBean() {
		this.atividade = new Atividade();
		Object user;
		//Recuperando da sessão quem ta logado
		HttpSession session = getSession();
		admin = (AdministradorAtividade) session.getAttribute("usuario");
	}

	public String salvar(){

		atividade.setAdministrador(admin);
		AtividadeDAO dao = new AtividadeJpaDAO();
		dao.beginTransaction();
		dao.salvar(atividade);
		dao.commit();
		dao.close();
		return "minhas-atividades";

	}
	
	public String excluir(){
		AtividadeDAO dao = new AtividadeJpaDAO();
		dao.beginTransaction();
		dao.excluir(atividade);
		dao.commit();
		dao.close();
		return null;
	}
	
	public List<Atividade> getMinhasAtividades(){
		AdministradorAtividadeDAO dao = new AdministradorAtividadeJpaDAO();
		List<Atividade> atividades = dao.getAtividadesByAdmin(admin);
		return atividades;
	}

	public Atividade getAtividade() {
		return atividade;
	}

	public void setAtividade(Atividade atividade) {
		this.atividade = atividade;
	}

	public AdministradorAtividade getAdmin() {
		return admin;
	}

	public void setAdmin(AdministradorAtividade admin) {
		this.admin = admin;
	}

	private FacesContext getFacesContext() {
        return FacesContext.getCurrentInstance();
    }

	private HttpSession getSession() {
        return (HttpSession) getFacesContext().getExternalContext().getSession(false);
    }
}
